The present invention relates to the field of distributed computer systems. More specifically, the present invention relates to a collaborative environment instantiated by a distributed computer system that facilitates interchange of information between two or more users sitting at respective computer terminals disposed in the collaborative environment.
Organizations, e.g., military organizations, since the dawn of time have recognized the value of command, control, communications, and intelligence functions in achieving a defined goal. With the invention of the computer, a computer, i.e., a data processing function, was added to the tools necessary for organizations striving to achieve the stated goal. In recent times, the need for various individuals and groups within the organization to effectively collaborate with one another was also recognized. Stated another way, real or near real time communications made it possible for members within an organization to collaborate with one another. Thus, Command, Control, Communications, Computers, Collaboration and Intelligence (C5I) became a necessary organizational requirement.
As discussed in U.S. Pat. No. 6,351,777 to Simonoff, several services within the U.S. Military often need to interoperate, i.e., interact and communicate, with one another in order to plan and to subsequently carry out Joint Missions. More specifically, the participants in a Joint Mission must be able to share information including text data, images, and, more importantly, various computer generated displays of consolidated tactical information. Moreover, even when interoperability concerns are satisfied, this only assures that information can be transferred from the source of the information to the user of the information; there still exists the concern that the various users will be unable to coordinate their efforts, i.e., collaborate with one another, in planning and executing the mission and in critiquing completed missions. For example, while collaboration between various intelligence agencies and military branch during mission planning is essential, it often does not occur due the logistics involved in assembling the requisite personnel in one location. Thus, planning often involves an exchange of documents as one group develops a mission plan and the other groups or individuals critique the plan. Such planning is conducted using messages in the military realm (Email in a corporate environment).
It will be appreciated that the various components of the U.S. Military use a heterogeneous collection of computers running a wide variety of operating systems, e.g., MS-DOS, Windows 3.1, Windows-95, Windows-NT, O/S-2, Macintosh O/S, and several versions of UNIX. The number of different systems that must be interconnected varies with each Joint Mission, making it extremely difficult for the components of the U.S. Military to interoperate. In particular, it is extremely difficult for the various military components to share a homogeneous view of tactical information. The degree of difficulty is often increased when the various military components are physically separated from one another over long distances. Although communication channels are available to interconnect the various computers, wide geographic separation generally dictates the use of a narrow band communications link.
Military components can share text data, maps and/or photographs used in conveying tactical data, after a fashion, even when using dissimilar computers. For example, map data may be displayed using a particular computer program, assuming that a version of the particular computer program tailored to run on each variation of the individual computers forming a computer system is available. It should be mentioned, however, that each branch of the service often uses branch-specific symbols for displaying information; the Army may designate ground troops using one symbol while the naval vessels providing fire support may use a completely different symbol to represent the identical ground troops. The problem is exacerbated when armies from several nations, e.g., a NATO force, are endeavoring to interoperate.
It will be appreciated that the foregoing discussion assumes that several versions of the same program can be installed on the various computers being networked to one another; the problem is exacerbated when the computer systems, which must be networked, are running incompatible operating systems. For example, the Joint Mission parameters often dictate that a UNIX computer acting as a server, i.e., the computer providing data, be interconnected to various desktop computer and workstation clients, i.e., the computers receiving the data, which clients are running several other incompatible operating systems.
The advent of the Internet, and particularly the World Wide Web (the Web), permits a server to provide clients with JAVA™ applications (Applets) embedded into the HTML document. A JAVA™ Applet is a small program that can be run automatically as soon as the associated HTML document is transferred from the server to the client(s); several JAVA™ Applets may be transferred to a client within a single HTML document. The principal advantage to this approach lies in program configuration control, i.e., just the server side program is updated; the client automatically receives the latest version, for example, of the JAVA™ Applet when the associated HTML document is transferred to the client(s).
As discussed briefly above, the ability for remotely located users to collaborate with one another is significantly different from the ability to collaborate with several co-located individuals. Some discussion of the differences between these two disparate forms of collaboration would probably be helpful at this point.
As discussed in U.S. Pat. No. 5,206,934, when a user performs an operation in a stand alone application with an input device such as a mouse or keyboard, an event is generated by the operating system and passed to the application program for execution. The stand-alone application interprets the events and performs operations to change its internal data in response to the users' request. Such events include, for example, performing a deletion step in a word processing program or creating a graphic element in a computer-aided design (CAD) program.
When the application is expanded from a single user into a multiple user environment, such as simulating a conference over a network or a modem, each user must be able to manipulate the same data and see all of the modifications made to the data. To do this, each machine must interpret and transmit information about what the user is doing and what the user is seeing. There are three basic approaches to accomplish these results. These approaches correspond to three levels of data manipulation referred to as user input, data modification and visual display. Each approach intercepts and transmits information at the particular level. As a result, each approach has specific drawbacks and benefits.
At the highest level, i.e., the user input level, each machine intercepts its user input and transmits that input to other machines. For example, if the user clicked the mouse at a screen location (100, 150), the machine would transmit a “mouse click” command with those coordinates to other machines in the conference. The drawback of this approach is that it requires that all machines be set up in exactly the same manner including identical hardware operating systems and applications. If one user has an icon or symbol in a different place on his screen than other users, then a mouse click on that icon on one machine will not be a mouse click on the icon on the other machines. As a result, communication between the people using the system quickly breaks down because they are each seeing different things on their respective screens, thereby making this method of conferencing unusable.
At the lowest level, namely visual display, each machine intercepts visual outputs to the screen and sends it to all other users so that they see the same screen. A program, which performs such a function, is sometimes referred to as a remote control program. Under such schemes, one machine acts as a host and contains all of the data that is manipulated. The other machines pass user inputs to the host machine and receive screen change commands back. A drawback of this method of conferencing is that it requires a large amount of information to be transmitted in the form of all or part of the screen memory and as a result it is relatively slow and inflexible. Also, because all the users in the conference share the same information, all users must possess sufficient hardware and software to display the screen information including complex graphical representations.
Both of the aforementioned methods manipulate data through one entry point. In other words, even though multiple users are working on a document, each user is seen as a single entity to the system. As a result, if one user selects text in a word processor and another user types the key, both operations will be considered as originating from one user, and the data may be accidentally destroyed. Thus, the user input and visual display systems are not truly collaborative wherein multiple users may modify the data concurrently.
In mid-level conferencing, application primitives (units of information necessary to duplicate the user's operation on remote machines) are sent from one machine to the other, which has the following drawbacks:                1. some centralized control is necessary to implement the exchange of primitives;        2. high performance (speed) computers and expensive computer systems are necessary to implement such mid-level conferencing in real time; and        3. with a centralized architecture, performance limitations are incurred because at least two message transmission delays result between the originating workstation and the controller and then back. While the time delay may be reduced by inter-work station communications, a controller workstation is required and conflicting commands must be reversed or re-executed.        
In summary, U.S. Pat. No. 5,206,934 concludes that all of these approaches have serious drawbacks. Some of the approaches rely on host, terminal or master slave relationships among the various users. Some systems only work with the same operating system. Some attempts merely allow one user at a time to access the data. In the case of remote systems, a master controller requires interpretation of screen change commands, which can be slow when the high data volume is relatively high. In primitive passing systems, the problem is alleviated but at the cost of central processing with high performance equipment.
U.S. Pat. No. 5,206,934 proposes an alternative method and apparatus for conferencing among a plurality of computers wherein a local user receives inputs containing user actions and data for interpretation as to what the user action is with respect to the data and produces user action outputs. An interpreter/encoder interprets and encodes the user action outputs into packets of encoded commands and data related thereto. Then, a communications device sends the encoded information to at least one remote user and the local user itself. An interpreter decoder at each computer interprets and decodes the encoded information specifying an operation to be performed on the data. The operation is then executed at the local user and the remote users. In other words, each user on the system works on his/her own version of the document being worked on. Moreover, the system is operating system independent and multiple documents and applications may be worked on at the same time by different sets of users.
In contrast, U.S. Pat. No. 5,515,491, discloses a method and corresponding system which permits management of communications within a collaborative computer-based system including multiple display devices. A shared data object, e.g., a text object, portions of which, e.g., paragraphs, may be displayed on the display devices, is simultaneously accessible by multiple users within the system. Cursors are provided within the shared data object, e.g., the text object, and each cursor is associated with a respective one of the users. In managing communications within the collaborative computer-based system, a region within the shared data object may be designated, a paragraph may be selected by one of the users. A designated message is then automatically transmitted to all users in response to selected activities of one or more users within the designated region of another user for the shared data object.
Other computer system approaches with respect to collaboration between far-flung personnel via the Internet or a dedicated Intranet have been made. One such approach is disclosed in U.S. Pat. No. 6,091,412, which describes a guided telecommunications system, i.e., a system for managing interactions between users (i.e., a guide and one or more clients) in a browser-based telecommunications network. Moreover, several programs for collaboration between widely separated personnel are currently available. For example, POW WOW, NetMeeting (available from Microsoft, Inc.), Sametime, and InfoWorkspace are personal computer (PC) based programs for collaboration. NetMeeting, for example, permits users to first find other users in cyberspace and then share files, chat, videoconference, sketch, etc. However, neither NetMeeting nor any of the other approaches discussed above, permits active content, links, and GUI objects, nor do these programs and collaboration methods allow for central data storage, logging, and filtering.
It should be mentioned at this point that each of the patents discussed above is incorporated, in its entirety, by reference.
What is needed is computer assisted collaboration technology (CACT). Stated another way, what is needed is a collaboration environment implemented on a computer network or system wherein various users can use the same computer program and share information beyond the visualization of a map, text or photograph regardless of variations in the individual components of the system. Moreover, what is needed is a practical computer system that enables users to quickly and easily interchange graphical user interface (GUI) objects with one another in real time. In short, what is needed is a computer system and corresponding method of operation wherein a computer system achieves component interoperability, collaboration, and cost savings irrespective of computer variation and architecture of the individual computers making up the computer system.